﻿using Notoric.Model.Validation;

namespace Notoric.Model.Elements
{
    /// <summary>
    /// Represents an element that has a size in a 2-dimensional real space.
    /// </summary>
    public interface IResizableElement
    {
        /// <summary>
        /// Gets or sets the height of the element.
        /// </summary>
        /// <value>
        /// <para>
        /// Type: <see cref="System.Double"/>
        /// </para>
        /// <para>
        /// The height (in centimeters) of the element.
        /// </para>
        /// </value>
        /// <exception cref="ValidationException">
        /// The value is less than 0.0.
        /// </exception>
        double Height
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the width of the element.
        /// </summary>
        /// <value>
        /// <para>
        /// Type: <see cref="System.Double"/>
        /// </para>
        /// <para>
        /// The width (in centimeters) of the element.
        /// </para>
        /// </value>
        /// <exception cref="ValidationException">
        /// The value is less than 0.0.
        /// </exception>
        double Width
        {
            get;
            set;
        }
    }
}
